package org.jeecg.modules.middleware.quartz.job;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.jeecg.modules.wlhy.customer.entity.HyCustomerAccountBook;
import org.jeecg.modules.wlhy.customer.service.IHyCustomerAccountBookService;
import org.jeecg.modules.wlhy.hyconfig.entity.HyConfig;
import org.jeecg.modules.wlhy.hyplatform.entity.HyPlatformAccountBook;
import org.jeecg.modules.wlhy.hyplatform.service.IHyPlatformAccountBookService;
import org.jeecg.modules.wlhy.utils.HyConfigUtils;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

/**
 *临时处理农行多级账簿名称问题，只执行一次后删除
 */
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
@Slf4j
public class TempAccNameJob implements Job {

//    @Autowired
//    private IHyCustomerAccountBookService hyCustomerAccountBookService;
//
//    @Autowired
//    private IHyPlatformAccountBookService hyPlatformAccountBookService;

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
//
//        HyConfig config = HyConfigUtils.getConfig();
//        if(config == null){
//            log.error("未找到配置信息");
//            return;
//        }
//        if(!config.getNhbankIzUse()){
//            log.error("未开通农行服务");
//            return;
//        }
//        String nhbankAccName = config.getNhbankAccName();
//        if(StringUtils.isBlank(nhbankAccName)){
//            log.error("农行账号名称不能为空");
//            return;
//        }
//        nhbankAccName = nhbankAccName.trim();
//
//        //处理货主多级账簿名称
//        List<HyCustomerAccountBook> customerAccountBookList = hyCustomerAccountBookService.list(new QueryWrapper<HyCustomerAccountBook>().ne("log_acc_name", nhbankAccName));
//        for (HyCustomerAccountBook customerAccountBook : customerAccountBookList) {
//            try {
//                customerAccountBook.setLogAccName(nhbankAccName);
//                hyCustomerAccountBookService.updateCustomerAccInfo(customerAccountBook);
//            }catch (Exception e){
//                log.error(e.getMessage());
//            }
//        }
//        //处理平台账户
//        HyPlatformAccountBook platformAccountBook = hyPlatformAccountBookService.getAccountBook();
//        if(platformAccountBook != null){
//            if(!StringUtils.equals(platformAccountBook.getLogAccName() ,nhbankAccName )){
//                try {
//                    platformAccountBook.setLogAccName(nhbankAccName);
//                    hyPlatformAccountBookService.updatePlateformAccInfo(platformAccountBook);
//                }catch (Exception e){
//                    log.error(e.getMessage());
//                }
//            }
//        }
        log.info("多级账簿问题处理完成");
    }
}
